A content addressable memory (CAM) is a hardware search engine made of memory and comparison circuitry. The CAM compares input search data against stored content data using the comparison circuitry, and returns the address or addresses of matching content data in a single clock cycle.
In a basic architecture of the CAM, search lines are used to forward the search data to core cells of the CAM, which includes both the memory and comparison circuitry. In addition, match lines are used to indicate whether the search data matches its corresponding content data, where the match lines are pre-charged high at the start of the CAM operation. When the search data is compared with the content data, cells with a mismatch or miss pulls down their respective match lines, whereas cells with a match or hit stay on.
The comparison circuitry, which is required for every cell in the memory, increases physical size of the CAM which in turn increases manufacturing cost of the CAM. In addition, the comparison circuitry also increases power dissipation since it is active on every clock cycle, and the match lines have to be pre-charged high before the matching operation. Furthermore, a high peak current in design of the CAM to accommodate the high power dissipation may result in a high dynamic voltage drop of the CAM's power supply. To counter the voltage drop, a significant amount of decoupling capacitance (de-cap) has to be provided to the CAM. The area overhead for such a remedy (e.g., implementation of de-cap transistors) may require an additional area overhead in the CAM.